function getCsrfToken() {
  var promise = new Promise(function (resolve, reject) {
    var i = 0;
    var waitingOnCSRF = setInterval(function () {
      var metaTag = document.querySelector("meta[name='csrf-token']");
      i++;
      if (metaTag) {
        clearInterval(waitingOnCSRF);
        var authToken = metaTag.getAttribute("content");
        return resolve(authToken);
      } else if (i === 1000) {
        clearInterval(waitingOnCSRF);
        var airbrake = new airbrakeJs.Client({projectId: 1, projectKey: '<%=ApplicationConfig["AIRBRAKE_API_KEY"]%>'});
        airbrake.addFilter(function(notice) {
          notice.context.environment = "<%= Rails.env %>";
          return notice;
        });
        airbrake.notify("Could no locate CSRF metatag" + JSON.stringify(localStorage.current_user));
        return reject("Could not locate CSRF meta tag on the page.");
      }
    }, 5);
  });
  return promise;
}
